package org.dromara.common.core.function;

/**
 * 异常处理函数
 *
 * @author zlj
 * @since 2023/1/10
 */
@FunctionalInterface
public interface ExceptionFunction {

    /**
     * 异常处理
     *
     * @param errMsg 异常信息
     * @param errLog 异常日志
     */
    void throwException(String errMsg, String errLog);

    /**
     * 异常后打错误日志
     *
     * @param errLog 异常日志
     */
    default ExceptionFunction errLog(String errLog) {
        this.throwException(null, errLog);
        return this;
    }

    /**
     * 异常后抛异常信息
     *
     * @param errMsg 异常信息
     */
    default void errMsg(String errMsg) {
        this.throwException(errMsg, null);
    }
}
